I. Field
The present disclosure relates generally to communications, and more specifically techniques for optimizing decoding in a receiver.
II. Background
Recent advances in technology has drastically increased the capabilities of wireless communication devices. Today, many wireless communication devices provide, in addition to tradition telephony services, a means for viewing multimedia broadcasts in a mobile environment. Various broadcast systems are currently being deployed and/or developed to efficiently and economically distribute multimedia content to millions of wireless communication devices. These broadcast systems allow users to access multiple channels of content on a wireless communications device typically used for traditional cellular voice and data services.
The multimedia content broadcast on each channel is often referred to as a service. Each service may includes one or more data streams. By way of example, a typical multimedia program may include a video data stream, an audio data stream, and a signaling data stream. In these broadcast systems, a data stream may be sent as two sub-streams: a base stream and an enhancement stream. This technique is often referred to as “layered” coding. The base stream may carry base information for all wireless devices, and the enhancement stream may carry additional information for wireless devices observing better channel conditions. With layered coding, the base and enhancement streams are encoded and modulated separately and then combined to obtain a data symbol stream.
The encoding of the base and enhancement streams may include forward error correction (FEC). FEC is a signal processing technique that adds redundancy to the transmitted data streams using a predetermined algorithm. The added redundancy allows the receiver to detect and possibly correct errors in the transmitted data streams. Frequently, concatenated data encoding schemes are used to provide powerful error correction capability. By way of example, a data stream may be protected by a block code, such as Reed-Solomon code or the like, and then turbo encoded. In this example, the data stream is provided to a Reed-Solomon encoder in blocks. For each data block, the Reed-Solomon encoder appends a parity block to form a code block. Each code block is then provided to a turbo encoder to produce a stream of code symbols. The code symbols are blocked together and mapped to points on a signal constellation, thereby producing a stream of modulation symbols. The modulation symbol stream is provided to an analog front end (AFE), which generates a continuous time signal, which is transmitted over a communications channel.
At the receiver, a symbol demapper is used to make “soft decisions” as to which modulation symbols were most likely transmitted based on the received points in the signal constellation. The soft decisions are provided to a turbo decoder to recover the code blocks that were originally transmitted. A Reed-Solomon decoder processes each code block in an attempt to correct errors and recover the data stream.
A block code, such as Reed-Solomon, is generally specified using the following notation: Reed-Solomon (n,k). This means that the Reed-Solomon encoder receives a data block having k data packets and adds a parity block to produce a code block having n packets. A Reed-Solomon decoder can correct up to n−k packets (i.e., the number of packets in the parity block). Accordingly, there may be times in broadcasts using a layered coding scheme where the packet errors in the enhancement stream exceed the capability of the block code, but the base stream has no error. In these situations, processing resources may be saved by skipping the block decoding of the enhancement stream.